package com.lynn.common.utils;

import android.content.Context;
import android.content.res.AssetManager;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;

import androidx.core.content.ContextCompat;


public class ResUtil {

    /**
     * 获取dimen
     */
    public static int getDimens(Context context, int resId) {
        return context.getResources().getDimensionPixelSize(resId);
    }

    /**
     * 获取文字
     */
    public static String getStr(Context context, int resId) {
        return context.getResources().getString(resId);
    }

    /**
     * 获取文字,strings.xml使用占位符
     *
     * @param resId restId
     * @param args  占位符具体数值
     */
    public static String getStr(Context context, int resId, Object... args) {
        return context.getResources().getString(resId, args);
    }

    /**
     * 获取文字数组
     */
    public static String[] getStrArr(Context context, int resId) {
        return context.getResources().getStringArray(resId);
    }


    /**
     * 获取drawable
     * 注： getResources().getDrawable(int resId)过时,不推荐使用;
     * 替代方法1  getResource().getDrawable(int id, Resources.Theme theme),第二个参数@theme可以为空值,
     * 或Context.getDrawable(int),但是感觉此方法不好用，
     * 替代方法2：谷歌推荐使用的 ContextCompat.getDrawable(Context context,int resId),
     * 该方法兼容所有版本;
     *
     * @param resId 资源ID
     */
    public static Drawable getDrawable(Context context, int resId) {
        return ContextCompat.getDrawable(context, resId);
    }

    /**
     * 获取颜色
     * 注：Android N (API 23)之后 getResources().getColor(int resId) 过时
     * 替代方法：推荐使用兼容性方法 ContextCompat.getColor(Context context,int resId)
     *
     * @param resId 资源ID
     */
    public static int getColor(Context context, int resId) {
        return ContextCompat.getColor(context, resId);
    }

    /**
     * 获取颜色选择器
     * 同getColor()
     *
     * @param resId 资源ID
     */
    public static ColorStateList getColorStateList(Context context, int resId) {
        return ContextCompat.getColorStateList(context, resId);
    }


    /**
     * 设置字体的样式
     *
     * @param path 字体样式文件相对路径
     */
    public static Typeface getTypeface(Context context, String path) {
        AssetManager assets = context.getAssets();
        return Typeface.createFromAsset(assets, path);
    }

}


